Skip to main content

Context Accounts

Git Source

State-changing Instructions

Cancel

Write account: the sender of the stream who can cancel it.

pub sender: Signer<'info>,

Create if needed account: the deposited token ATA owned by the sender.

pub sender_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Read account: the mint account of the deposited token.

pub deposited_token_mint: Box<InterfaceAccount<'info, Mint>>,

Write account: the stream data account storing stream details.

pub stream_data: Box<Account<'info, StreamData>>,

Write account: the deposited token ATA owned by the stream data account.

pub stream_data_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Read account: the mint account for the stream NFT.

pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,

Program account: the Associated Token program.

pub associated_token_program: Program<'info, AssociatedToken>,

Program account: the System program.

pub deposited_token_program: Interface<'info, TokenInterface>,

Program account: the Token program of the deposited token.

pub system_program: Program<'info, System>,

CollectFees

Write account: the account authorized to collect fees from the treasury.

pub fee_collector: Signer<'info>,

Write account: the address that will receive the collected fees.

pub fee_recipient: UncheckedAccount<'info>,

Write account: the treasury account that holds the fees.

pub treasury: Box<Account<'info, Treasury>>,

CreateWithTimestamps

Write account: the creator and funder of the stream.

pub creator: Signer<'info>,

Write account: the creator's ATA for the deposit token.

pub creator_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Read account: the recipient of the stream.

pub recipient: UncheckedAccount<'info>,

Read account: the sender of the stream.

pub sender: UncheckedAccount<'info>,

Write account: the NFT collection data storing the total supply.

pub nft_collection_data: Box<Account<'info, NftCollectionData>>,

Write account: the master edition account for the NFT collection.

pub nft_collection_master_edition: UncheckedAccount<'info>,

Write account: the metadata account for the NFT collection.

pub nft_collection_metadata: UncheckedAccount<'info>,

Read account: the mint account for the NFT collection.

pub nft_collection_mint: Box<InterfaceAccount<'info, Mint>>,

Read account: the mint account for the deposit token.

pub deposit_token_mint: Box<InterfaceAccount<'info, Mint>>,

Create account: the mint account for the stream NFT.

pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,

Create account: the ATA for the stream NFT owned by the recipient.

pub recipient_stream_nft_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Create account: the account that will store the stream data.

pub stream_data: Box<Account<'info, StreamData>>,

Create account: the ATA for deposit tokens owned by stream data account.

pub stream_data_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Create account: the master edition account for the stream NFT.

pub stream_nft_master_edition: UncheckedAccount<'info>,

Create account: the metadata account for the stream NFT.

pub stream_nft_metadata: UncheckedAccount<'info>,

Program account: the Associated Token program.

pub associated_token_program: Program<'info, AssociatedToken>,

Program account: the Token program of the deposit token.

pub deposit_token_program: Interface<'info, TokenInterface>,

Program account: the Token program of the stream NFT.

pub nft_token_program: Interface<'info, TokenInterface>,

Program account: the Token Metadata program.

pub token_metadata_program: Program<'info, Metadata>,

Program account: the System program.

pub system_program: Program<'info, System>,

Sysvar account: Rent.

pub rent: Sysvar<'info, Rent>,

Initialize

Write account: the initializer of the program.

pub initializer: Signer<'info>,

Create account: the treasury account that will hold the fees.

pub treasury: Box<Account<'info, Treasury>>,

Create account: the NFT collection data account storing collection metadata.

pub nft_collection_data: Box<Account<'info, NftCollectionData>>,

Create account: the master edition account for the NFT collection.

pub nft_collection_master_edition: UncheckedAccount<'info>,

Create account: the metadata account for the NFT collection.

pub nft_collection_metadata: UncheckedAccount<'info>,

Create account: the mint account for the NFT collection.

pub nft_collection_mint: Box<InterfaceAccount<'info, Mint>>,

Create account: the ATA for the NFT collection owned by treasury.

pub nft_collection_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Program account: the Associated Token program.

pub associated_token_program: Program<'info, AssociatedToken>,

Program account: the Token program of the collection NFT.

pub nft_token_program: Interface<'info, TokenInterface>,

Program account: the Token Metadata program.

pub token_metadata_program: Program<'info, Metadata>,

Sysvar account: Rent.

pub rent: Sysvar<'info, Rent>,

Program account: the System program.

pub system_program: Program<'info, System>,

Renounce

Write account: the sender of the stream.

pub sender: Signer<'info>,

Write account: the stream data account storing stream details.

pub stream_data: Box<Account<'info, StreamData>>,

Read account: the mint account for the stream NFT.

pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,

Withdraw

Write account: the signer of the withdrawal who pays the withdrawal fee.

pub signer: Signer<'info>,

Read account: the recipient of the stream who owns the stream NFT.

pub stream_recipient: UncheckedAccount<'info>,

Read account: the account that will receive the withdrawn tokens.

pub withdrawal_recipient: UncheckedAccount<'info>,

Create if needed account: the ATA for deposited tokens owned by withdrawal recipient.

pub withdrawal_recipient_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Write account: the treasury account that receives the withdrawal fee.

pub treasury: Box<Account<'info, Treasury>>,

Read account: the mint account for the deposited token.

pub deposited_token_mint: Box<InterfaceAccount<'info, Mint>>,

Read account: the ATA for the stream NFT owned by recipient.

pub recipient_stream_nft_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Write account: the account storing the stream data.

pub stream_data: Box<Account<'info, StreamData>>,

Write account: the ATA for deposited tokens owned by stream data.

pub stream_data_ata: Box<InterfaceAccount<'info, TokenAccount>>,

Read account: the mint account for the stream NFT.

pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,

Program account: the Associated Token program.

pub associated_token_program: Program<'info, AssociatedToken>,

Read account: The Chainlink program used to retrieve on-chain price feeds.

pub chainlink_program: AccountInfo<'info>,

Read account: The account providing the SOL/USD price feed data.

pub chainlink_sol_usd_feed: AccountInfo<'info>,

Program account: the Token program of the deposited token.

pub deposited_token_program: Interface<'info, TokenInterface>,

Program account: the Token program of the stream NFT.

pub nft_token_program: Interface<'info, TokenInterface>,

Program account: the System program.

pub system_program: Program<'info, System>,

Read-only Instructions

StreamExists

Read account: the mint account for the stream NFT.

pub stream_nft_mint: UncheckedAccount<'info>,

StreamView

Read account: the account storing stream details.

pub stream_data: Box<Account<'info, StreamData>>,

Read account: the mint account for the stream NFT.

pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,

TreasuryView

Read account: the account storing the treasury details.

pub treasury: Box<Account<'info, Treasury>>,

WithdrawalFeeInLamports

Read account: the treasury account that receives the withdrawal fee.

pub treasury: Box<Account<'info, Treasury>>,

Read account: The Chainlink program used to retrieve on-chain price feeds.

pub chainlink_program: AccountInfo<'info>,

Read account: The account providing the SOL/USD price feed data.

pub chainlink_sol_usd_feed: AccountInfo<'info>,